home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-03-12 | 927 b | 46 lines | [TEXT/PJMM] |
- unit FaceFromICN;
-
- interface
- uses
- {$ifc UNDEFINED THINK_PASCAL}
- Types, QuickDraw, Icons, Resources, Memory,
- {$endc}
- SAT;
-
- function SATGetFaceFromICN (id: Integer): FacePtr;
-
- implementation
-
- function SATGetFaceFromICN (id: Integer): FacePtr;
- var
- h: Handle;
- r: Rect;
- f: FacePtr;
- p: Ptr;
- begin
- SATGetFaceFromICN := nil;
- h := GetResource('ICN#', id);
- if h = nil then
- Exit(SATGetFaceFromICN);
- SetRect(r, 0, 0, 32, 32);
- f := SATNewFace(r);
- if f = nil then
- Exit(SATGetFaceFromICN);
-
- {Copy icon}
- p := h^;
- BlockMove(p, f^.iconMask.baseAddr, 128);
- {Copy to colorData}
- SATSetPortFace(f);
- CopyBits(f^.iconMask, gSAT.iconPort.port^.portBits, r, r, srcCopy, nil);
- {Copy mask}
- p := Ptr(Longint(h^) + 128);
- BlockMove(p, f^.iconMask.baseAddr, 128);
- {Tell SAT to clean up after us! (Update the mask region etc.)}
- SATChangedFace(f);
- SATGetFaceFromICN := f;
- end; {SATGetFaceFromICN}
-
- end.
-
-